﻿using System;
using System.Collections.Generic;
using Resn.WhuPub.DML;

namespace Resn.WhuPub.BIL
{
        /// <summary>
        ///定义员工的属性和方法
        /// </summary>
        public interface IEmployee : IEntity
        {
                #region 属性

                #region 基本属性

                /// <summary>
                ///获取或设置员工姓名
                /// </summary>
                /// <value>
                ///员工姓名
                /// </value>
                string Name { get; set; }

                /// <summary>
                ///获取或设置员工密码
                /// </summary>
                /// <value>
                ///员工密码
                /// </value>
                string Password { get; set; }

                /// <summary>
                ///获取或设置员工层次
                /// </summary>
                /// <value>
                ///员工层次
                /// </value>
                EmployeeLevel EmployeeLevel { get; set; }

                /// <summary>
                ///获取或设置员工状态
                /// </summary>
                /// <value>
                ///员工状态
                /// </value>
                EmployeeState EmployeeState { get; set; }

                /// <summary>
                ///获取或设置员工联系电话和手机
                /// </summary>
                /// <value>
                ///员工联系电话和手机，多个电话用分号隔开
                /// </value>
                string Telephone { get; set; }

                /// <summary>
                ///获取或设置员工QQ
                /// </summary>
                /// <value>
                ///员工QQ，多个QQ用分号隔开
                /// </value>
                string QQ { get; set; }

                /// <summary>
                ///获取或设置员工电子邮箱
                /// </summary>
                /// <value>
                ///员工电子邮箱，多个邮箱用分号隔开
                /// </value>
                string Email { get; set; }

                /// <summary>
                ///获取或设置员工省份权限项集合字符串
                /// </summary>
                /// <value>
                ///员工省份权限项集合字符串,多项权限项用分号隔开
                /// </value>
                String ProviceAccesses { get; set; }

                /// <summary>
                ///获取或设置员工备注
                /// </summary>
                /// <value>
                ///员工备注
                /// </value>
                string Memo { get; set; }

                #endregion 基本属性

                /// <summary>
                ///获取员工模型
                /// </summary>
                /// <value>
                ///员工模型
                /// </value>
                EmployeeModel Model { get; }

                /// <summary>
                ///获取权限项集合
                /// </summary>
                /// <value>
                ///权限项集合
                /// </value>
                List<String> ProviceAccessCollection { get; }

                #endregion 属性

                #region 方法

                /// <summary>
                ///判断权限项集合字符串是否包含指定的权限项
                /// </summary>
                /// <param name="provice">权限项</param>
                /// <returns>
                ///True：包含
                ///False：不包含
                /// </returns>
                bool ContainsProviceAccess(string provice);

                /// <summary>
                /// 创建差旅流程
                /// </summary>
                /// <param name="planContent">计划内容</param>
                /// <param name="lendAmount">借款金额</param>
                /// <param name="startTime">开始时间</param>
                /// <param name="endTime">结束时间</param>
                /// <param name="memo">备注</param>
                /// <returns>
                /// 创建的差旅对象
                /// </returns>
                ITravel CreateTravel(string planContent, double lendAmount, DateTime startTime, DateTime endTime, string memo);

                
                #endregion 方法
        }
}